<?php
class SeguroDAO{
	
	private static  $instanciaUnica;
	private $conexao;
	
	private function __construct(){
		$this->conexao = Conexao::getConexao();
	}

	public static function getInstancia(){
		if (!isset(self::$instanciaUnica))
		self::$instanciaUnica = new SeguroDAO();
		return self::$instanciaUnica;
	}

	public function listaSeguro(){
		$lista	=	Array();
		$rs		=	new QueryMySql();
		//$rs->setQuery("Select * From tbl_seguro");
		$rs->setQuery("SELECT  
		`tbl_seguro`.`codSeguro`,
        `tbl_seguro`.`descricao`,
        `tbl_seguro`.`valor`,
        
        `tbl_seguradora`.`codSeguradora`,
        `tbl_seguradora`.`descricao`as descricao_seguradora,
        
        `tbl_tiposeguro`.`codTipoSeguro`,
        `tbl_tiposeguro`.`descricao` as descricao_tipo_seguro
		from `tbl_seguro`,`tbl_seguradora`,`tbl_tiposeguro`
		WHERE `tbl_seguro`.`codSeguradora` = `tbl_seguradora`.`codSeguradora` AND
        `tbl_seguro`.`codTipoSeguro` = `tbl_tiposeguro`.`codTipoSeguro`");
		while ($rs->getrow()){
			$seguro = new Seguro();
			$tipoSeguro = new TipoSeguro();
			$seguradora = new Seguradora();
			$seguro->setCodSeguro($rs->field("codSeguro"));
			$seguro->setDescricao($rs->field("descricao"));
			$seguro->setValor($rs->field("valor"));
			
			$seguradora->setCodSeguradora($rs->field("codSeguradora"));
			$seguradora->setDescricao($rs->field("descricao_seguradora"));
			$seguro->setSeguradora($seguradora);
			
			$tipoSeguro->setCodTipoSeguro($rs->field("codTipoSeguro"));
			$tipoSeguro->setDescricao($rs->field("descricao_tipo_seguro"));
			$seguro->setTipoSeguro($tipoSeguro);
			//$seguro->setTipoSeguro($tipoSeguro->setCodTipoSeguro($rs->field("codTipoSeguro")));
			//$seguro->setTipoSeguro($rs->field("descricao"));
			//$seguro->setCodSeguradora($rs->field("codSeguradora"));
			$lista[] = $seguro;
		}
		return $lista;		 
	}

	public function insertSeguro(Seguro $seguro){
		
		//$daoSeguradora = SeguradoraDAO::getInstancia();
		//$codSeguradora = $daoSeguradora->insertSeguradora($seguradora);
		
		//$daoTipoSeguro = TipoSeguroDAO::getInstancia();
		//$codTipoSeguro = $daoTipoSeguro->insertTipoSeguro($tipoSeguro);
		
		$sql 		= new UpdateSQL();
		$sql->setTable("tbl_seguro");
		$sql->addField("descricao", $seguro->getDescricao(),"String");
		$sql->addField("valor", $seguro->getValor(),"Number");
		$sql->addField("codTipoSeguro", $seguro->getCodTipoSeguro() ,"Number");
		$sql->addField("codSeguradora", $seguro->getCodSeguradora(),"Number");
		$sql->setAction("INSERT");
		return $this->conexao->execute($sql->getSQL());
	}

	public function updateSeguradora(Seguro $seguro){
		$sql 		= new UpdateSQL();
		$sql->setTable("tbl_seguro");
		$sql->setKey("codSeguro", $seguro->getCodSeguro(), "Number");
		$sql->addField("descricao", $seguro->getDescricao(),"String");
		$sql->addField("valor", $seguro->getValor(),"Number");
		$sql->addField("codTipoSeguro", $seguro->getCodTipoSeguro(),"Number");
		$sql->addField("codSeguradora", $seguro->getCodSeguradora(),"Number");
		$sql->setAction("UPDATE");
		return $this->conexao->execute($sql->getSQL());
	}

	public function deleteSeguro(Seguro $seguro){
		//$instituicao = new Instituicao();
		$sql = new UpdateSQL();
		$sql->setTable("tbl_seguro");
		$sql->setKey("codSeguro", $seguro->getCodSeguro(), "Number");
		$sql->setAction("DELETE");
		return $this->conexao->executeUpdate($sql->getSQL());
	}
	
	/*public function pesquisaCodTipoSeguro(Seguro $codTipoSeguro){
		$rs		=	new QueryMySql();
		$rs->setQuery("SELECT * from `tbl_seguro` where codSeguro like = '$codTipoSeguro' ");
		$seguro = new Seguro();
		$tipoSeguro = $seguro->setTipoSeguro($tipoSeguro);
		//$tipoSeguro = new TipoSeguro();
		$tipoSeguro->setCodTipoSeguro($rs->field('codTipoSeguro'));
		
		$seguro->setTipoSeguro($tipoSeguro);
		if ($rs->getrow() = $codTipoSeguro){
				return $seguro;
			
		}
	}*/
		
}
?>